using System;
using System.Collections.Generic;
using System.Text;
using THSLib;
using THSERP.BaseProvider;

namespace THSERP.Modules.Invoice
{
    public class InvoiceItemsEntity : ERPModuleItemsEntity
    {
        #region Variables
        protected int _aRInvoiceItemID;
        protected String _aAStatus = DefaultAAStatus;
        protected int _fK_ARInvoiceID;
        protected int _fK_ICDepartmentID;
        protected int _fK_ICProductGroupID;
        protected int _fK_ICProductID;
        protected int _fK_ICProductAttributeID;
        protected int _fK_ICStockID;
        protected int _fK_ICStockSlotID;
        protected String _aRInvoiceItemProductType = String.Empty;
        protected String _aRInvoiceItemProductSerialNo = String.Empty;
        protected String _aRInvoiceItemProductAttribute = String.Empty;
        protected int _aRInvoiceItemSortOrder;
        protected String _aRInvoiceItemProductName = String.Empty;
        protected String _aRInvoiceItemProductDesc = String.Empty;
        protected String _aRInvoiceItemProductSellUnit = String.Empty;
        protected String _aRInvoiceItemProductBasicUnit = String.Empty;
        protected String _aRInvoiceItemProductPackagingUnit = String.Empty;
        protected double _aRInvoiceItemProductSellFactor;
        protected double _aRInvoiceItemProductPackagingFactor;
        protected double _aRInvoiceItemProductUnitPrice;
        protected double _aRInvoiceItemProductInternalUnitPrice;
        protected double _aRInvoiceItemProductUnitCost;
        protected double _aRInvoiceItemProductGroupDiscount;
        protected double _aRInvoiceItemProductDiscount;
        protected double _aRInvoiceItemProductTaxPercent;
        protected double _aRInvoiceItemProductQtyOld;
        protected double _aRInvoiceItemProductQty;
        protected double _aRInvoiceItemProductBasicQty;
        protected double _aRInvoiceItemProductPakagingQty;
        protected double _aRInvoiceItemQty1;
        protected double _aRInvoiceItemQty2;
        protected double _aRInvoiceItemQty3;
        protected double _aRInvoiceItemQty4;
        protected double _aRInvoiceItemQty5;
        protected double _aRInvoiceItemQty6;
        protected double _aRInvoiceItemPrice;
        protected double _aRInvoiceItemInternalPrice;
        protected String _aRInvoiceItemComment = String.Empty;
        protected double _aRInvoiceItemUnitVolumn;
        protected double _aRInvoiceItemUnitWeight;
        protected double _aRInvoiceItemTaxAmount;
        protected double _aRInvoiceItemDiscountAmount;
        protected double _aRInvoiceItemNetAmount;
        protected double _aRInvoiceItemTotalAmount;
        protected double _aRInvoiceItemTotalCost;

        //Extra variables_HieuNH_16/05/2010
        protected String _aRInvoiceItemSupplierName = String.Empty;
        protected String _bBBRanchName = String.Empty;
        #endregion

        #region Public properties
        public int ARInvoiceItemID
        {
            get { return _aRInvoiceItemID; }
            set
            {
                if (value != this._aRInvoiceItemID)
                {
                    _aRInvoiceItemID = value;
                    NotifyChanged("ARInvoiceItemID");
                }
            }
        }
        public String AAStatus
        {
            get { return _aAStatus; }
            set
            {
                if (value != this._aAStatus)
                {
                    _aAStatus = value;
                    NotifyChanged("AAStatus");
                }
            }
        }
        public int FK_ARInvoiceID
        {
            get { return _fK_ARInvoiceID; }
            set
            {
                if (value != this._fK_ARInvoiceID)
                {
                    _fK_ARInvoiceID = value;
                    NotifyChanged("FK_ARInvoiceID");
                }
            }
        }
        public int FK_ICDepartmentID
        {
            get { return _fK_ICDepartmentID; }
            set
            {
                if (value != this._fK_ICDepartmentID)
                {
                    _fK_ICDepartmentID = value;
                    NotifyChanged("FK_ICDepartmentID");
                }
            }
        }
        public int FK_ICProductGroupID
        {
            get { return _fK_ICProductGroupID; }
            set
            {
                if (value != this._fK_ICProductGroupID)
                {
                    _fK_ICProductGroupID = value;
                    NotifyChanged("FK_ICProductGroupID");
                }
            }
        }
        public int FK_ICProductID
        {
            get { return _fK_ICProductID; }
            set
            {
                if (value != this._fK_ICProductID)
                {
                    _fK_ICProductID = value;
                    NotifyChanged("FK_ICProductID");
                }
            }
        }
        public int FK_ICProductAttributeID
        {
            get { return _fK_ICProductAttributeID; }
            set
            {
                if (value != this._fK_ICProductAttributeID)
                {
                    _fK_ICProductAttributeID = value;
                    NotifyChanged("FK_ICProductAttributeID");
                }
            }
        }
        public int FK_ICStockID
        {
            get { return _fK_ICStockID; }
            set
            {
                if (value != this._fK_ICStockID)
                {
                    _fK_ICStockID = value;
                    NotifyChanged("FK_ICStockID");
                }
            }
        }
        public int FK_ICStockSlotID
        {
            get { return _fK_ICStockSlotID; }
            set
            {
                if (value != this._fK_ICStockSlotID)
                {
                    _fK_ICStockSlotID = value;
                    NotifyChanged("FK_ICStockSlotID");
                }
            }
        }
        public String ARInvoiceItemProductType
        {
            get { return _aRInvoiceItemProductType; }
            set
            {
                if (value != this._aRInvoiceItemProductType)
                {
                    _aRInvoiceItemProductType = value;
                    NotifyChanged("ARInvoiceItemProductType");
                }
            }
        }
        public String ARInvoiceItemProductSerialNo
        {
            get { return _aRInvoiceItemProductSerialNo; }
            set
            {
                if (value != this._aRInvoiceItemProductSerialNo)
                {
                    _aRInvoiceItemProductSerialNo = value;
                    NotifyChanged("ARInvoiceItemProductSerialNo");
                }
            }
        }
        public String ARInvoiceItemProductAttribute
        {
            get { return _aRInvoiceItemProductAttribute; }
            set
            {
                if (value != this._aRInvoiceItemProductAttribute)
                {
                    _aRInvoiceItemProductAttribute = value;
                    NotifyChanged("ARInvoiceItemProductAttribute");
                }
            }
        }
        public int ARInvoiceItemSortOrder
        {
            get { return _aRInvoiceItemSortOrder; }
            set
            {
                if (value != this._aRInvoiceItemSortOrder)
                {
                    _aRInvoiceItemSortOrder = value;
                    NotifyChanged("ARInvoiceItemSortOrder");
                }
            }
        }
        public String ARInvoiceItemProductName
        {
            get { return _aRInvoiceItemProductName; }
            set
            {
                if (value != this._aRInvoiceItemProductName)
                {
                    _aRInvoiceItemProductName = value;
                    NotifyChanged("ARInvoiceItemProductName");
                }
            }
        }
        public String ARInvoiceItemProductDesc
        {
            get { return _aRInvoiceItemProductDesc; }
            set
            {
                if (value != this._aRInvoiceItemProductDesc)
                {
                    _aRInvoiceItemProductDesc = value;
                    NotifyChanged("ARInvoiceItemProductDesc");
                }
            }
        }
        public String ARInvoiceItemProductSellUnit
        {
            get { return _aRInvoiceItemProductSellUnit; }
            set
            {
                if (value != this._aRInvoiceItemProductSellUnit)
                {
                    _aRInvoiceItemProductSellUnit = value;
                    NotifyChanged("ARInvoiceItemProductSellUnit");
                }
            }
        }
        public String ARInvoiceItemProductBasicUnit
        {
            get { return _aRInvoiceItemProductBasicUnit; }
            set
            {
                if (value != this._aRInvoiceItemProductBasicUnit)
                {
                    _aRInvoiceItemProductBasicUnit = value;
                    NotifyChanged("ARInvoiceItemProductBasicUnit");
                }
            }
        }
        public String ARInvoiceItemProductPackagingUnit
        {
            get { return _aRInvoiceItemProductPackagingUnit; }
            set
            {
                if (value != this._aRInvoiceItemProductPackagingUnit)
                {
                    _aRInvoiceItemProductPackagingUnit = value;
                    NotifyChanged("ARInvoiceItemProductPackagingUnit");
                }
            }
        }
        public double ARInvoiceItemProductSellFactor
        {
            get { return _aRInvoiceItemProductSellFactor; }
            set
            {
                if (value != this._aRInvoiceItemProductSellFactor)
                {
                    _aRInvoiceItemProductSellFactor = value;
                    NotifyChanged("ARInvoiceItemProductSellFactor");
                }
            }
        }
        public double ARInvoiceItemProductPackagingFactor
        {
            get { return _aRInvoiceItemProductPackagingFactor; }
            set
            {
                if (value != this._aRInvoiceItemProductPackagingFactor)
                {
                    _aRInvoiceItemProductPackagingFactor = value;
                    NotifyChanged("ARInvoiceItemProductPackagingFactor");
                }
            }
        }
        public double ARInvoiceItemProductUnitPrice
        {
            get { return _aRInvoiceItemProductUnitPrice; }
            set
            {
                if (value != this._aRInvoiceItemProductUnitPrice)
                {
                    _aRInvoiceItemProductUnitPrice = value;
                    NotifyChanged("ARInvoiceItemProductUnitPrice");
                }
            }
        }
        public double ARInvoiceItemProductInternalUnitPrice
        {
            get { return _aRInvoiceItemProductInternalUnitPrice; }
            set
            {
                if (value != this._aRInvoiceItemProductInternalUnitPrice)
                {
                    _aRInvoiceItemProductInternalUnitPrice = value;
                    NotifyChanged("ARInvoiceItemProductInternalUnitPrice");
                }
            }
        }
        public double ARInvoiceItemProductUnitCost
        {
            get { return _aRInvoiceItemProductUnitCost; }
            set
            {
                if (value != this._aRInvoiceItemProductUnitCost)
                {
                    _aRInvoiceItemProductUnitCost = value;
                    NotifyChanged("ARInvoiceItemProductUnitCost");
                }
            }
        }
        public double ARInvoiceItemProductGroupDiscount
        {
            get { return _aRInvoiceItemProductGroupDiscount; }
            set
            {
                if (value != this._aRInvoiceItemProductGroupDiscount)
                {
                    _aRInvoiceItemProductGroupDiscount = value;
                    NotifyChanged("ARInvoiceItemProductGroupDiscount");
                }
            }
        }
        public double ARInvoiceItemProductDiscount
        {
            get { return _aRInvoiceItemProductDiscount; }
            set
            {
                if (value != this._aRInvoiceItemProductDiscount)
                {
                    _aRInvoiceItemProductDiscount = value;
                    NotifyChanged("ARInvoiceItemProductDiscount");
                }
            }
        }
        public double ARInvoiceItemProductTaxPercent
        {
            get { return _aRInvoiceItemProductTaxPercent; }
            set
            {
                if (value != this._aRInvoiceItemProductTaxPercent)
                {
                    _aRInvoiceItemProductTaxPercent = value;
                    NotifyChanged("ARInvoiceItemProductTaxPercent");
                }
            }
        }
        public double ARInvoiceItemProductQtyOld
        {
            get { return _aRInvoiceItemProductQtyOld; }
            set
            {
                if (value != this._aRInvoiceItemProductQtyOld)
                {
                    _aRInvoiceItemProductQtyOld = value;
                    NotifyChanged("ARInvoiceItemProductQtyOld");
                }
            }
        }
        public double ARInvoiceItemProductQty
        {
            get { return _aRInvoiceItemProductQty; }
            set
            {
                if (value != this._aRInvoiceItemProductQty)
                {
                    _aRInvoiceItemProductQty = value;
                    NotifyChanged("ARInvoiceItemProductQty");
                }
            }
        }
        public double ARInvoiceItemProductBasicQty
        {
            get { return _aRInvoiceItemProductBasicQty; }
            set
            {
                if (value != this._aRInvoiceItemProductBasicQty)
                {
                    _aRInvoiceItemProductBasicQty = value;
                    NotifyChanged("ARInvoiceItemProductBasicQty");
                }
            }
        }
        public double ARInvoiceItemProductPakagingQty
        {
            get { return _aRInvoiceItemProductPakagingQty; }
            set
            {
                if (value != this._aRInvoiceItemProductPakagingQty)
                {
                    _aRInvoiceItemProductPakagingQty = value;
                    NotifyChanged("ARInvoiceItemProductPakagingQty");
                }
            }
        }
        public double ARInvoiceItemQty1
        {
            get { return _aRInvoiceItemQty1; }
            set
            {
                if (value != this._aRInvoiceItemQty1)
                {
                    _aRInvoiceItemQty1 = value;
                    NotifyChanged("ARInvoiceItemQty1");
                }
            }
        }
        public double ARInvoiceItemQty2
        {
            get { return _aRInvoiceItemQty2; }
            set
            {
                if (value != this._aRInvoiceItemQty2)
                {
                    _aRInvoiceItemQty2 = value;
                    NotifyChanged("ARInvoiceItemQty2");
                }
            }
        }
        public double ARInvoiceItemQty3
        {
            get { return _aRInvoiceItemQty3; }
            set
            {
                if (value != this._aRInvoiceItemQty3)
                {
                    _aRInvoiceItemQty3 = value;
                    NotifyChanged("ARInvoiceItemQty3");
                }
            }
        }
        public double ARInvoiceItemQty4
        {
            get { return _aRInvoiceItemQty4; }
            set
            {
                if (value != this._aRInvoiceItemQty4)
                {
                    _aRInvoiceItemQty4 = value;
                    NotifyChanged("ARInvoiceItemQty4");
                }
            }
        }
        public double ARInvoiceItemQty5
        {
            get { return _aRInvoiceItemQty5; }
            set
            {
                if (value != this._aRInvoiceItemQty5)
                {
                    _aRInvoiceItemQty5 = value;
                    NotifyChanged("ARInvoiceItemQty5");
                }
            }
        }
        public double ARInvoiceItemQty6
        {
            get { return _aRInvoiceItemQty6; }
            set
            {
                if (value != this._aRInvoiceItemQty6)
                {
                    _aRInvoiceItemQty6 = value;
                    NotifyChanged("ARInvoiceItemQty6");
                }
            }
        }
        public double ARInvoiceItemPrice
        {
            get { return _aRInvoiceItemPrice; }
            set
            {
                if (value != this._aRInvoiceItemPrice)
                {
                    _aRInvoiceItemPrice = value;
                    NotifyChanged("ARInvoiceItemPrice");
                }
            }
        }
        public double ARInvoiceItemInternalPrice
        {
            get { return _aRInvoiceItemInternalPrice; }
            set
            {
                if (value != this._aRInvoiceItemInternalPrice)
                {
                    _aRInvoiceItemInternalPrice = value;
                    NotifyChanged("ARInvoiceItemInternalPrice");
                }
            }
        }
        public String ARInvoiceItemComment
        {
            get { return _aRInvoiceItemComment; }
            set
            {
                if (value != this._aRInvoiceItemComment)
                {
                    _aRInvoiceItemComment = value;
                    NotifyChanged("ARInvoiceItemComment");
                }
            }
        }
        public double ARInvoiceItemUnitVolumn
        {
            get { return _aRInvoiceItemUnitVolumn; }
            set
            {
                if (value != this._aRInvoiceItemUnitVolumn)
                {
                    _aRInvoiceItemUnitVolumn = value;
                    NotifyChanged("ARInvoiceItemUnitVolumn");
                }
            }
        }
        public double ARInvoiceItemUnitWeight
        {
            get { return _aRInvoiceItemUnitWeight; }
            set
            {
                if (value != this._aRInvoiceItemUnitWeight)
                {
                    _aRInvoiceItemUnitWeight = value;
                    NotifyChanged("ARInvoiceItemUnitWeight");
                }
            }
        }
        public double ARInvoiceItemTaxAmount
        {
            get { return _aRInvoiceItemTaxAmount; }
            set
            {
                if (value != this._aRInvoiceItemTaxAmount)
                {
                    _aRInvoiceItemTaxAmount = value;
                    NotifyChanged("ARInvoiceItemTaxAmount");
                }
            }
        }
        public double ARInvoiceItemDiscountAmount
        {
            get { return _aRInvoiceItemDiscountAmount; }
            set
            {
                if (value != this._aRInvoiceItemDiscountAmount)
                {
                    _aRInvoiceItemDiscountAmount = value;
                    NotifyChanged("ARInvoiceItemDiscountAmount");
                }
            }
        }
        public double ARInvoiceItemNetAmount
        {
            get { return _aRInvoiceItemNetAmount; }
            set
            {
                if (value != this._aRInvoiceItemNetAmount)
                {
                    _aRInvoiceItemNetAmount = value;
                    NotifyChanged("ARInvoiceItemNetAmount");
                }
            }
        }
        public double ARInvoiceItemTotalAmount
        {
            get { return _aRInvoiceItemTotalAmount; }
            set
            {
                if (value != this._aRInvoiceItemTotalAmount)
                {
                    _aRInvoiceItemTotalAmount = value;
                    NotifyChanged("ARInvoiceItemTotalAmount");
                }
            }
        }
        public double ARInvoiceItemTotalCost
        {
            get { return _aRInvoiceItemTotalCost; }
            set
            {
                if (value != this._aRInvoiceItemTotalCost)
                {
                    _aRInvoiceItemTotalCost = value;
                    NotifyChanged("ARInvoiceItemTotalCost");
                }
            }
        }

        //Extra properties_HieuNH_16/05/2010
        public String BRBranchName
        {
            get { return _bBBRanchName; }
            set
            {
                if (value != this._bBBRanchName)
                {
                    _bBBRanchName = value;
                }
            }
        }

        public String ARInvoiceItemSupplierName
        {
            get
            {
                return _aRInvoiceItemSupplierName;
            }
            set
            {
                _aRInvoiceItemSupplierName = value;
            }
        }
        #endregion
    }
}
